This invention relates to numerical control systems for driving stepping motors and more particularly to novel acceleration and rate controls therefor.
Stepping motors have long been used to provide extremely accurate speed and particularly position control. Within the limits of system dynamics a stepping motor increments one step each time a pulse controlled change of polarity is applied to its windings. The steps are typically 1/200 or 1/400 of a revolution per step and such low angular increments coupled with a low pitch lead screw results in position changes of the driven element as low as 0.0001 inches per step. Driving a stepping motor at steady state is not difficult and requires only an oscillator with the desired frequency.
In many applications, for instance machine tools, substantial masses must be driven with extreme positioning accuracy. Frequently the desired velocity of the driven member is such that the stepping motor must accelerate gradually over several hundred or thousand steps to avoid slipping and losing absolute synchronization with the driver. Deceleration, which is simply negative acceleration (the term acceleration being used herein to denote both positive and negative acceleration in many cases), also requires careful control for the same reason.
Several schemes have been used heretofore for acceleration control. These schemes are generally sub-optional. The simple schemes such as linear acceleration do not provide optimum equipment performance. The rate of acceleration with such a scheme must be fixed to allow the system to follow under the worst case conditions. Consequently the full power of the stepping motor is not utilized over much of the acceleration range. This results in appreciably slower average speeds, particularly with short incremental moves.
More sophisticated control regimens have heretofore required very complex controls and in many cases have still failed to provide the optimum utilization of the motor/driven machinery combination.
In many applications it is desirable to drive two or more stepping motors simultaneously. There are two general ways to accomplish this. One is to drive each stepping motor separately and control each at the desired rate. An example of such an arrangement is shown in U.S. Pat. No. 3,069,608. Alternatively, the motors can be driven by the same controls at the same rate. When applied to a system wherein the two motors are driving a member respectively along two axes at right angles to one another, for instance an X-Y table, this allows a single step to be taken along either axis or a 45.degree. step to be taken when both motors are simultaneously stepped.
The single drive approach is considerably simpler and less expensive. It has limitations, however, and has not been widely accepted for machine tool applications as a consequence. One important limitation relates to maximum feed rate control in applications such as machine tools. When operating both motors simultaneously and therefore operating at a 45.degree. angle the resultant movement, for a constant X and Y stepping rate is .sqroot.2, or approximately 1.4 times the velocity of an X only or Y only step. Since surface finish and tool life suffer at high feed rates and production suffers at low rates no fixed X and Y rate is fully satisfactory for a machine having the capability of simultaneously moving in both directions. Some highly sophisticated controls utilizing separate drivers for plural motors also include calculating means to alter the feed rate along each axis based on the angle of movement and the resultant velocity. While providing a highly satisfactory control, such an approach is relatively cumbersome and expensive.
Recently the availability of moderately priced microprocessors has generated interest in their utilization in a variety of applications. Such devices are of interest for numerical control equipment but have limitations which pose problems to their efficient use in such applications. One such problem is that the resolution of stepping motors is so high that storage and counting of the number of pulses (steps) for a particular move involves the handling of very large numbers at very high speeds. These rates are frequently so high that they exceed the capacity of the microprocessor. Consequently microprocessors cannot be used with conventional design in some applications and, when usable, limit or tend to limit the stepping rates available.
It is an object of this invention to provide a simple, accurate and highly hardware efficient control for stepping motors including acceleration control.
It is another object of this invention to provide a simple means of rate control to maintain constant velocity movement while using a single driver to drive two motors individually or simultaneously.
It is a further object of this invention to provide a means to minimize the effect of the large step storage data requirements on the size of a microprocessor used in calculating step position information.
The above and other objects are efficiently achieved by the novel circuit design disclosed herein.